Interactive training application

ABSTRACT

An interactive training application has three components: a lesson engine, a lesson delivery system, and a lesson authoring tool. The lesson engine runs an interactive, multimedia training exercise based on the contents of a lesson file, which comprises a plurality of pages. Each page includes a navigation item, associated with another page, and a reference to multimedia content. The lesson delivery system displays a menu of lessons to a student, fetches a lesson file corresponding to the student&#39;s selection, and invokes the lesson engine upon the lesson file. The lesson authoring tool provides a graphical interface for inputting and editing storyboards, from which the lesson authoring tool is configured for generating a lesson file.

RELATED APPLICATION

[0001] This application claims the benefit of U.S. ProvisionalApplication No. 60/017,433, entitled “Interactive Training Application,”filed on May 9, 1996 by David Schwartz, Paunpimon A. Houlihan, WilliamV. Murphy, and Trent Dennis.

TECHNICAL FIELD

[0002] The present invention relates to computer-aided instruction and,more particularly, to networked, interactive computer-based, corporatetraining.

BACKGROUND ART

[0003] In the corporate world, employee training is crucial for the longterm economic health of a company. As the economy is becomingincreasingly technology driven, the pace of business is rapidlyaccelerating. Information can be communicated across the globe inminutes, if not seconds. Financial transactions occur around the clock.Accordingly, business opportunities can spring up in an instant, only tovanish in a short time.

[0004] To meet these challenges, organizations have been radicallyre-engineering their work flow processes, e.g., by adopting just in timedelivery of supplies. Firms have also been restructuring theiroperations and organization. However, companies must also enhance their

[0005] For example, the benefits obtained from being first to marketwith a new product or service can be squandered if the sales associatesdo not know about or properly understand the new offering. As anotherexample, a business may need to modify its customer care policy inresponse to a rapidly changing market. In these examples, disseminatinginformation through the enterprise quickly and effectively is criticalfor success.

[0006] Traditional approaches to corporate training, however, arebecoming less effective in the current economic climate. Most corporatetraining still follows the leader-led training model. In the leader-ledtraining model, an instructor would lecture before a classroom ofstudents, asking questions, eliciting class participation, and assigningexercises to do. In other words, traditional corporate training isessentially similar to what happens in high-school, college, anduniversity classrooms.

[0007] The disadvantages to leader-led corporate training are becomingincreasingly apparent. Leader-led training suffers from its high costsand moderate effectiveness.

[0008] In many cases, corporate training centers are centrally located.Accordingly, students must travel to a training center. Often, thecorporate training center is located in another city or state,necessitating travel and overnight accommodations. Thus, there is a needfor reducing out-of-pocket training costs, especially in travel andaccommodations, which consume up to 70% of the training budget.

[0009] Another reason contributing to the expense of out-of-towntraining is the travel time used by the employee. The more time takenfor travel, the less time the employee has for more productive tasks.Thus, there is a need for improving employee job productivity.

[0010] The second drawback to leader-led training is in the area ofeffectiveness. Leader-led training is often boring, and a bored employeeis not a satisfied employee. Unsatisfied employees are less productiveand may leave the company, creating turnover. Thus, there is a need forinteresting and enjoyable instruction.

[0011] Conventionally, an instructor lectures a classroom of students.Each student learns at a different pace, causing difficulties for theinstructor. If the pace of the instruction is too fast, the slowerstudents get lost and do not learn. If the pace of instruction is tooslow, then the brighter students get bored and tune out. In any event,the faster learners are instructed at the same pace as slower learners,necessitating more time away from the job. Thus, there is a need fortraining students at their own pace.

[0012] Another aspect to the effectiveness incorporate training is inthe consistency of the information being taught. If a large number ofemployees must be provided with information, then several instructorsmust be hired. However, these instructors are human and thus teach thesame material differently. Thus, there is a need for consistency in thecorporate training.

[0013] Retention is an important goal in corporate instruction.Traditional leader-led instruction mainly involves lecturing and,perhaps, projecting slides or drawing on a chalkboard. However, thesemethods have not been found to be highly effective. For example, onestudy has shown that on average people remember only 20% of what theysee or hear and 40% of what they both see and hear. Thus, there is aneed for increasing the retention level of training.

[0014] Another area in which leader-led training is becoming moredisadvantageous is in being up-to-date. With the fast pace of today'stechnological world, it is imperative to update the training material atonce to reflect the new products, services, or information andimmediately disseminate the material to the work force. Thus, there is aneed for quickly updating the training materials.

[0015] Broadly, the concept of computer-aided instruction has beenaround for some time to generally address some of the drawbacksassociated with leader-based training. However, conventionalcomputer-based training techniques have not been satisfactorily appliedto the corporate training environment in particular.

[0016] For example, computer-based learning systems have very specifichardware requirements, but companies typically own a range ofincompatible computers, from personal computers (PCs) or multi-userminicomputers and mainframes. Equipping all their distributed learningcenters with specialized hardware can be very expensive. Thus, there isa need for resource flexibility.

[0017] Often the software in a computer-based training system is sospecific to a particular course that creating computerized teachingmaterial for a new class requires writing the software again fromscratch. Rewriting the software is time-consuming and expensive. Thus,there is a need for reducing the development time and costs trainingprograms.

[0018] When each computerized course is created separately, the userinterface of one course often different from the user interface ofanother course, forcing each student to learn a new way of interactingwith the program. Accordingly, some of the time spent with the computeris spent on learning to use the program rather than the materialintended to be taught. Thus, there is a need for improving employeetraining productivity.

[0019] Therefore, it is desirable to provide a computer-based trainingsystem that is applicable to today's fast-paced, technology-drivencorporate world.

DISCLOSURE OF THE INVENTION

[0020] One object of the invention is to provide a network fordelivering computer-based training materials and instruction.

[0021] Another object of the invention is to provide interactivecomputer-based instruction.

[0022] Still another object of the invention is presenting instructionalmaterials in a multimedia format.

[0023] According to the present invention, the foregoing and otherobjects and advantages are attained by a method and software forinstructing a student based on courseware. Courseware includesmultimedia content and lesson files. A lesson file has a number ofpages. Each page includes a reference to multimedia content and anavigational item associated with another page. The method and softwareinclude the step of instructing a student based on a page of a lessonfile. In addition, a navigational control associated with thenavigational item is displayed. When activation of the navigationalcontrol is detected, the student is further instructed based on the pageassociated with the navigational item.

[0024] According to another aspect of the invention, an interactivetraining network comprises a storage device for the storing thecourseware and workstations. These workstations are networked to thestorage device and have means for retrieving a lesson file andmultimedia content referenced in the lesson file from the storage devicebased on input from a student. The workstations further have means forinstructing the student according to the lesson file and the multimediacontent.

[0025] According to another aspect of the invention, a method andsoftware for interactive training includes the step of storingcourseware. A lesson file and multimedia content referenced in thelesson file is retrieved based on input from a student. The student isinstructed according to the lesson file and the multimedia content.

[0026] In another aspect, a platform-independent, interactive trainingnetwork has a storage device for storing courseware. A first trainingmeans retrieves the courseware and runs it in a first operatingenvironment. A second training means retrieves the same course and runsit in a second operating environment that is mutually incompatible withthe first operating environment.

[0027] Accordingly, another aspect is attained by a tool, method, andsoftware for authoring lessons. A storyboard, which includes anavigational item to another storyboard and a reference to multimediacontent, is input and stored in a database. Storyboards are retrievedfrom the database and are used to generate a lesson file, which has anumber of pages. Each page includes a reference to multimedia contentand a navigational item associated with another pages.

[0028] Additional objects, advantages, and novel features of theinvention will be set forth in part in the description which follows,and in part will become apparent upon examination of the following ormay be learned by practice of the invention. The objects and advantagesof the invention may be realized and attained by means of theinstrumentalities and combinations particularly pointed out in theappended claims.

BRIEF DESCRIPTION OF DRAWINGS

[0029] The present invention is illustrated by way of example, and notby way of limitation, in the figures of the accompanying drawings and inwhich like reference numerals refer to similar elements and in which:

[0030]FIG. 1 depicts an interactive training network according to anembodiment.

[0031]FIG. 2 depicts a workstation upon which an embodiment can beimplemented.

[0032]FIG. 3 is a dataflow diagram illustrating the major softwaremodules according to an embodiment.

[0033]FIG. 4 is a flowchart illustrating the operation of a lessondelivery system according to an embodiment.

[0034]FIG. 5 is a screen display of the lesson delivery system.

[0035]FIG. 6 is a flowchart illustrating the operation of a lessonengine according to an embodiment.

[0036]FIG. 7 is a dataflow diagram illustrating the software componentsof a lesson authoring tool according to an embodiment.

[0037]FIG. 8 is a screen display of the lesson authoring tool, showingan exemplary storyboard form.

BEST MODE FOR CARRYING OUT THE INVENTION

[0038] A method and apparatus for interactive training are described. Inthe following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be apparent, however,that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

Network and Hardware Overview

[0039] Referring to FIG. 1, depicted is a diagram of an interactive,multimedia training network 100 upon which an embodiment of the presentinvention can be implemented. Network 100 includes sites for developing,delivering, and running interactive, multimedia courseware.

[0040] More specifically, courseware is developed on a central trainingserver 110. The central training server 110 may connect to an expandedcourseware storage system 112, preferably a high-capacity hard diskstorage system.

[0041] Members of a courseware development team operate one or moredeveloper workstations 114, using an inventive lesson authoring tool.The developer workstations may be networked to the central trainingserver 110 in a local area network or communicate with that server via awide area data network 120. When the courseware developers create newcourseware, it is loaded on the central training server 110.

[0042] Accordingly, the central training server 110 stores the mastercopies of all the courseware for the training network 100. The centraltraining server 110 communicates with a number of performance labs 130via a wide area data network 120, which may be a fast packet network, aframe relay network, or the like. The central training server 110 isalso configured for downloading courseware to each performance lab 130,when the courseware is developed, tested, and approved. In addition, theperformance labs 130 upload and download data to the central trainingserver 110 on a periodic basis, daily or weekly, during off-hours toensure that the most up-to-date courseware is available in eachperformance lab 130.

[0043] The performance labs 130 are the actual classrooms, and thetraining network 100 may comprise any number of performance labs 130.Two such performance labs 130 are depicted in FIG. 1. Each performancelab 130 includes an instructor workstation 132 and associated localcourseware storage device 134. Preferably, the local courseware storagedevice 134 is a workstation with 4.2 GB hard drives. Each localcourseware storage device 134 is accessible to central training server110 via wide area data network 120 for loading the most recentcourseware.

[0044] Each performance lab 130 includes a number of studentworkstations 136, preferably six or eight. The student workstations 136can be set up in a classroom-like environment with an overheadprojector, chalkboard, etc. This configuration allows the benefits ofinteractive, multimedia training to be obtained while still keeping theclass relatively small for human interaction and permitting supplementalleader-led training if necessary.

[0045] The student workstations 136 are preferably high-performance PCsset up for multimedia processing, but may be any comparable computersystem. Referring to FIG. 2, depicted is a block diagram of aworkstation. Workstation 200 includes a bus 210 or other communicationmechanism for communicating information, and a processor 212 coupledwith bus 210 for processing information. Workstation 200 furthercomprises a random access memory (RAM) or other dynamic storage device214 (referred to as main memory), coupled to bus 201 for storinginformation and instructions to be executed by processor 212. In apreferred embodiment, workstation 200 contains about 64 MB of mainmemory.

[0046] Workstation 200 also comprises a read only memory (ROM) and/orother static storage device 216 coupled to bus 210 for storing staticinformation and instructions for processor 212. Data storage device 218,such as a magnetic disk or optical disk and its corresponding diskdrive, can be coupled to bus 210 for further storage, preferably 2 GB,of information and instructions.

[0047] Workstation 200 can also be coupled via bus 210 to a displaydevice 220, such as a cathode ray tube (CRT), for displaying informationto a student. Workstation 200 further includes input devices, forexample, a keyboard 222 and a cursor control device 224, such as amouse. In addition, workstation 200 includes multimedia audio/videoplayer 226 for outputting sound and images to the student. Finally,workstation 200 is connected to a network, via network interface device228.

[0048] The present invention is related to the use of workstation 200for interactive training. According to one embodiment, interactivetraining is performed by workstation 200 in response to processor 212executing sequences of instructions contained in memory 214. Suchinstructions may be read into memory 214 from another computer-readablemedium, such as data storage 218. Execution of the sequences ofinstructions contained in memory 214 causes processor 212 to perform theprocess steps that will be described hereafter. In alternativeembodiments, hard-wired circuitry may be used in place of or incombination with software instructions to implement the presentinvention. Thus, the present invention is not limited to any specificcombination of hardware circuitry and software.

[0049] The courseware resides on local courseware storage device 134. Asthe students use the student workstations 136, that courseware is servedout via local area network 138 to the storage device 218 within eachstudent workstation 136. The courseware includes lessons files,described in further detail hereafter, and multimedia content, includingvideo, audio, text, graphics, animation, etc.

[0050] Each performance lab 130 may also include a local training server140 for running other application software for ancillary use. Forexample, local training server 140 may include a tactical sales planningtool or an on-line help system.

[0051] The local area network 138 for each performance lab 130 connectsto wide area data network 120 through an appropriate network router orconcentrator 142. Network router/concentrator 142 provides two-waysignal protocol conversions between local area network 138 and wide areadata network 120. Courseware is supplied to performance labs 130 viawide area data network 120 and then to student workstations 136 vialocal area network 138.

[0052] By distributing courseware throughout a wide area network,courseware can be immediately and uniformly updated throughout theentire enterprise. Travel costs are virtually eliminated because thematerial is delivered directly to a performance lab 130 close to thestudent. The same message can be consistently communicated through thecompany, because the same courseware is being disseminated without humanintervention regarding their content.

Software Overview

[0053] Referring to FIG. 3, depicted is a dataflow diagram of the majorsoftware modules according to an embodiment of the present invention.Courseware is developed through the aid of lesson authoring tool 300,running on developer workstation 114. Developers create and editstoryboards 302 describing each screen a student will encounter alongwith references to the multimedia that will be presented when thestudent access that screen. The lesson authoring tool 300 generates alesson file from a set of storyboards and stores the lesson file onextended courseware storage device 112. In addition, coursewaredevelopers produce multimedia content 304 and store the content onextended courseware storage device 112. The internal operation of thelesson authoring tool 300 is described in more detail hereafter.

[0054] The central training server 110 downloads courseware, comprisinglesson files 306 and multimedia content 304 to local courseware storagedevice 134. Also downloaded to storage device 134 from the centraltraining server 110 is the latest version of the lesson engine 310. Thelesson engine 310, the internal operation of which is described in moredetail hereafter, is the software module which reads and interprets alesson file 306 along with the associated multimedia content 304 toproduce a multimedia training application 312. The lesson engine 310encapsulates the “look-and-feel”, of the training applications so thatall computer-based training in a network according to an embodiment ofthe invention can present a consistent user-interface to the students.With a consistent user-interface, students can spend less time learningto use the interactive training application and more time learning theactual material. Consequently, productivity is improved.

[0055] The lesson delivery system 320 downloads the courseware, which isa lesson file, multimedia content, and the lesson engine 310 from thelocal courseware storage device 134 to the student workstation 136 forinteractive, multimedia training. The lesson engine 310 is preferablydownloaded when the student workstation 136 is booted, and the lessonfile and multimedia content is downloaded before each lesson that theinteractive, multimedia instruction 322 begins executing.

[0056] The software modules for the lesson engine 310 and the lessondelivery system 320 are platform independent, although the preferredembodiment utilizes UNIX-based equipment. The operating environment of acomputer is the largest obstacle to platform independence. The operatingenvironment of a computer is the machine language it understands and theoperating system commands it executes. Pure executable programs cannotrun in a mutually incompatible operating environment because the machinelanguage is different or the operating system commands are inconsistent.

[0057] Platform independence is achieved, however, by creating anauthoring application that runs in an “authoring” environment on top ofthe computer's operating environment. An authoring environment specifiesat a high-level the kinds of multimedia commands that are to be executedby an authoring application. In a preferred embodiment, the IconAuthorenvironment from Aimtech in Nashua, N.H., which runs on both PCs andUNIX, provides this platform-independent authoring environment, althoughpersons of skill in the art will readily recognize that other authoringtools may provide equivalent functionality although not for all the sameplatforms.

[0058] Even with a platform-independent authoring environment,platform-independence is difficult to achieve if the authoringapplication is not properly designed. For example, necessary files maybe located in separate locations in the hard disk directory structure.Thus, it is crucial not to hard code such external parameters.Accordingly, one embodiment uses variable files extensively toencapsulate the required external parameters. Variable files contain alist of variables and their values and are read in during the executionof an authoring application to set its variables. Thus, externalparameters can be put into variable files to attain platformindependence.

Lesson Delivery System

[0059] The lesson delivery system 320 is a platform independentauthoring application and can therefore run in both the PC and UNIXoperating environments. The lesson delivery system 320 is a student'sinterface for the interactive, multimedia training system. The operationof the lesson delivery system 320 during a training session isillustrated by the flowchart in FIG. 4.

[0060] In step 400, the lesson delivery system 320 executes the loginroutine. During the login routine, the student is prompted for a studentidentifier, such as a name, social security number, or the like, and mayinclude a password. Upon receiving a student identifier, the studentidentifier is validated. If the student identifier is valid, theninformation about the student is loaded from a remote database,preferably on instructor workstation 132, and the information is placedin a student variable file accessible to the lesson delivery system 320.

[0061] At step 402, the lesson delivery system 320 examines the studentvariable file to determine the lessons, including quizzes and tests,that the student is permitted to run. Quizzes and tests are, in fact,just another kind of lesson. The lessons available to the student areorganized into a menu and displayed to the user (step 404).

[0062]FIG. 5 depicts an exemplary lesson menu. The menu includes aninformation bar 500 which indicates the unit being undertaken. Under theinformation bar is a list of buttons, 502 to 506, for the variouslessons that are available to the student. Buttons 508 and 510 arenavigational buttons to allow the student visit other units and modules.Specifically, button 508 brings the student back to the main menu, whichis a list of modules, and button 510 brings the student back to previousmenu, in this case a unit menu. The menu also has a button 512 forlooking of terms in a glossary and a bookmark button 514 for bringingthe student back to last menu visited before logging out. In addition,help button 516 and exit button 518 are displayed.

[0063] The student selects one of the lessons by positioning a cursor(not shown) over one of the lesson buttons, 502 to 506, and activatingit. For example, the student may push a mouse to move the cursor andclick on a mouse button to activate the lesson button. Upon activationof the lesson button, the system receives that input as a selection of aparticular lesson (step 406).

[0064] In response, the system retrieves all the courseware associatedwith the lesson from local courseware storage device 134. Lessoncourseware includes a lesson file and the associated multimedia content.Each lesson is assigned a serial number, and the serial number isembedded in all the file names of the lesson file and the relatedmultimedia content. For example, the lesson file for unit 3, lesson 2 iscalled “a_(—)003_(—)02.iw” and the various corresponding multimediacontent files are named “a00302##.*”, where the number signs (#)indicate an incremental number to uniquely identify up to a hundred ofmultimedia content files and the asterisk (*) indicates the type of themultimedia content. The system retrieves the lesson file and themultimedia content files having the serial number for the embeddedlesson, “a_(—)003_(—)02.iw” in the above example.

[0065] Once the courseware is retrieved to the student workstation 136,the lesson delivery system 320 invokes another platform-independentprogram, the lesson engine 310, upon the retrieved courseware (step410). The operation of the lesson engine 310 is described in more detailhereafter. The lesson delivery system 320 and the lesson engine 310communicate to each other through variable files. Thus, the lessondelivery system 320 sends the lesson engine 310 a parameter describingthe name of the lesson file to be run.

[0066] After the lesson has run, the lesson delivery system 320 checksto see if the student is finished (step 412). The student is deemed tohave finished the session, when all lessons are completed and all testsare taken or when the student has pressed exit button 518. If thestudent is finished, then the student is logged out (step 414).Otherwise, execution proceeds back to steps 402 and 404 where the menuof lessons is updated and redisplayed.

[0067] By retrieving the lesson courseware through the network only uponrequest of the student (“store and forward”), the lesson delivery system320 always uses the most current courseware version for the performancelab 130. This approach helps to ensure that the corporate training beingdelivered to the student is the most up-to-date and current. Anotheradvantage to this store and forward approach is that the multimedia isnot streamed across the network. Video, for example, requires ahigh-bandwidth channel, which is available from the hard disk but notthe network. In another embodiment, the multimedia can be stored on thelocal courseware storage device 134 in compressed format and uncompresswhen downloaded to the student workstation 136, reducing storagerequirements.

Lesson Engine

[0068] The lesson engine 310 is a platform independent authoringapplication and can therefore run in both the PC and UNIX operatingenvironments. The lesson engine 310 is the module which is responsiblefor the interactive, multimedia instruction of a student according to aparticular piece of courseware. The operation of the lesson engine 310during a training session is illustrated by the flowchart in FIG. 6.

[0069] At step 600, the lesson engine 300 reads a lesson file 306 asspecified by the lesson delivery system 320. A lesson file is a variablefile that describes the structure of a particular interactive,multimedia lesson. In specific, the lesson file contains an entry forevery displayed page in the lesson, and a global variable, @initcount,that indicates which page is the first page to be displayed.

[0070] Information about all pages in the lesson is contained in aseries of parallel arrays, indexed by a page number. In particular, the@page[ ] array variable specifies information, especially destinationpages, for the navigational controls such as a button. For each pagenumber, the entry in the @page[ ] array variable is that string thatcontains up to twenty different “positions,” separated by the slashcharacter (/). For example, the entry for @page[400005] may be:“exit/exit/3done/4glossary/400010/0/0/0/0/0/400010/b2300101.smt/400005/playc;backc/b2300201.smt/0/nowait/0/0/0”.

[0071] Position 1 of the @page[ ] array variable specifies the pagenumber of the page containing the “main menu.”A user indicates a desireto go to the main menu by clicking on a button labelled “main menu.”This destination for this button is placed as a matter of convention inposition 1. In the example, position 1 is “exit,” which directs thelesson to exit the lesson when the button is pressed.

[0072] Positions 2, 3, 4, 5, and 6 specify the destination page numberwhen the “previous menu,” “done,” “glossary,” “next,” and “back” buttonsare respectively activated. In the example, the “next” button, specifiedat position 5, has the value “400010” meaning that when the “next”button is activated, the page identified by “400010” is to be displayed.

[0073] These navigation controls are displayed in the same position onthe screen, for example on the right side of the screen, regardless ofthe particular lesson file being run. Thus, this feature enables alllessons to be run with a consistent user-interface. A consistentuser-interface improves productivity because it leverages the user'stime in learning to use the computer system across the various lessons.

[0074] Positions 7-10 of the @page[ ] array variable specifies thedestination page number of lesson-specific navigational controls inorder to provide flexibility in developing interesting lessons. In theexample, the values of “0” for these positions means that nolesson-specific navigational controls are specified.

[0075] Position 11 specifies the destination page number for a timernavigational item that is automatically activated after the passage of aspecified amount of time. In the example, the destination page number is“400010,” which happens to be page specified by the “next” buttonposition.

[0076] Positions 12-16 specify various parameters for some of thecontent of the displayed page, including text and buttons, genericallycalled “smart objects.” Smart objects can display text and perform someadditional interactivity, such as asking the student for input. In thismanner, tests and quizzes can be implemented. Smart objects can alsosave information, such as which questions were answered correctly, in avariable file for other programs to access.

[0077] Position 17 enables automatic navigation to another page, so thata user need not press a button after the completion of presentingmultimedia content or interacting through smart objects. In the example,this field is set to “no wait.” Position 18 specifies the name of ananimation file to be displayed.

[0078] Other array variables govern the presentation of multimediacontent. The @sub[ ] array variable, for example, specifies informationabout invoking subroutines, which are interactive with the student. Forexample, a subroutine can ask the student a question on a quiz andreceiver the student's answer. The @media[ ] array variable specifiesinformation about the name of an audio file to be played, the name andscreen co-ordinates of a video file to be played. Finally, the @delete[] array variable is used to specify the removal of smart objects fromthe display.

[0079] One of the variables in the lesson is an @initcount variable,which specifies the page number of the first page of the lesson to bedisplayed to the student when the lesson engine 310 starts. The@initcount variable is typically set to a default value, such as 2000,which by convention denotes the first page of the lesson; however, the@initcount variable may be set based on a previously saved bookmarkvalue.

[0080] In step 602, the lesson engine 310 sets a working variable,called @count, to the value of the @initcount variable. The @countvariable is the variable which controls which page of the lesson is tobe displayed. In step 604, the lesson engine 310 causes the studentworkstation to display the page indicated by the @count variable.Specifically, the lesson engine looks up information about the displayedpages from the various array variables, indexed by the @count variable.For example, if the @count variable has a value of 2000, then the lessonengine 310 looks up the values stored in the @page[2000] array variableentry.

[0081] At step 606, the lesson engine 310 presents the multimediacontent referenced in the @sub[@count] and @media[@count] array variableentries. The references to the multimedia content employ the filename ofthe multimedia content. For example, if the multimedia content is agraphic of a sailboat that is stored in a file called “a0030201.pcx”then that filename is what is stored in the array variable entries.

[0082] The lesson engine 310 takes the filename of the multimediacontent and presents the multimedia content in a manner appropriate tothe nature of the multimedia content. For example, if the multimediacontent is a video file, then the video file is played at a location onthe screen. If the multimedia content is an audio file, then the audiofile is played through speakers, part of audio/video player 226,attached to the workstation. If the multimedia content is an animation,then the animation is displayed at a location on the screen.

[0083] At step 608, the lesson engine 310 displays the navigationalcontrols, which are usually buttons, then waits for input from thestudent (step 610). If the student activates a navigational control,then control passes to step 612, where the page number associated withthe navigational control is inspected. If the page number has thespecial value of “exit”, then the lesson engine 310 terminates theinteractive multimedia training application. For other values of pagenumbers, the @count variable is updated to that page number (step 614)and control loops back to step 604, where the new page is displayed.

[0084] Thus, each page of the lesson file includes a variety ofnavigational items that can point to any other page. Therefore, thecourseware developer has much flexibility in designing the flow of thelesson. In addition, the lesson file has references for a rich varietyof multimedia content for each page. Thus, the courseware developer alsohas much flexibility in using multimedia.

[0085] Accordingly, the inherent flexibility in the design of the lessonengine 310 and the lesson file 306 greatly contributes to improving theeffectiveness of corporate training programs. For example, interactive,multimedia training programs are more interesting than traditionalleader-led training, improving employee satisfaction and ultimatelyproductivity.

[0086] In addition, running several lesson engines 310 in a performancelab 130 allows each student to learn at his or her own pace. Thus,bright students are not kept back, and slower students are notintimidated.

[0087] Retention is improved because of the interactive nature of thelesson engine 310. Recall that one study has shown that non-interactive,leader-led training has retention levels from 20% to 40%. However, thesame study shows that interactive training boosts retention levels toaround 70%. Another study found that interactive video-based instructionhad a 25-50% higher content retention rate over classroom instruction.

[0088] Because the lesson-specific content is not found in the lessonengine 310 itself, but in a lesson file and multimedia content files,the lesson engine 310 is able to run different lessons with a consistentuser-interface. Thus, students do not have to relearn how to use acomputer-based training application.

[0089] Providing a consistent user-interface also produces the benefitof allowing courseware developers to concentrate on the actual contentof the lessons rather than the look-and-feel. In this manner, newtraining applications can be developed in a shorter amount of time,because the user-interface is already designed and implemented throughthe lesson engine.

Lesson Authoring Tool

[0090] Although lesson files provide much power and flexibility indelivering previously developed courseware, the compact nature of thelesson file was found to hamper the development of new courseware. Forexample, the lesson file achieves its platform-independence by beingimplemented as a text file. However, since the lesson file is a textfile, it is difficult to visualize each page as it will be displayed inthe lesson engine. In fact, courseware developers had to resort todesigning each page of the lesson on a piece of paper, called a paperstoryboard.

[0091] Furthermore, it is hard to find the specific areas of the lessonfile to make modifications. For example, the twelfth position in a@page[ ] array variable entry is difficult to discern, because eachposition is only separated from another position by a slash character(/).

[0092] Accordingly, one aspect of the invention is a lesson authoringtool, which facilitates the development of lesson files. The lessonauthoring tool comprises three major software components: a relationaldatabase 700, a graphical interface 702, and a generation tool 704,depicted in FIG. 7.

[0093] A courseware developer inputs a series of computerizedstoryboards 302 into the graphical interface 702. Each storyboard 302represents a page to be displayed by the lesson engine. When astoryboard is being input or edited, the graphical interface 702displays a form having input fields through which the various variablesrelating to the page may be inspected and modified.

[0094] Referring to FIG. 8, depicted is an exemplary storyboard form800. Storyboard form 800 comprises a number of input fields. Input field802 allows the courseware developer to inspect and modify the storyboardnumber, in this example, 2010. A default value of the storyboard isautomatically assigned by the lesson authoring tool, when a newstoryboard is input. In particular, the default storyboard numberassigned is ten greater than the previous storyboard number. Thestoryboard number corresponds the page number in the lesson file.

[0095] A feature of the storyboard form 800 is a graphicalrepresentation 810 of the corresponding page as it would look whendisplayed by the lesson engine. The page graphical representation alsoincludes a set of input fields for navigational items, which correspondto the navigational controls displayed by the lesson engine. Forexample, navigational item 812 corresponds to the “main menu” buttonnavigational control in the lesson engine. Juxtaposed to the navigationitem 812 is an input field 814 for the number of the destinationstoryboard. Since storyboard numbers correspond to page numbers, inputfield 814 is the means by which the destination page number for the“main menu” button is inspected and modified.

[0096] Also included in the storyboard form 800 is a description inputfield 820 of the storyboard. The description input field 820 allows thedevelopers to make notes and comments about each storyboard, reducingthe amount of the supplemental paper documentation about the lesson andits design. In addition, there is a comment input field 822, which isdevoted for comments concerning the operation of the page.

[0097] As storyboards are input or modified, they are saved by thelesson authoring tool in a relational database 700, the second componentof the lesson authoring tool. The relational database allows thestoryboards to be stored in a form that is easy to access and edit. Apreferred embodiment of the inventions uses the Microsoft Accessdatabase, from Microsoft Corp. of Redmond, Wash.; however, persons ofskill in the art readily appreciate that other relational databases maybe employed.

[0098] The third component of the lesson authoring tool is a generationtool 704. The generation tool 704 is responsive to a command from acourseware developer, received through graphical interface 702, forexample, through a menu entry. The generation tool 704, fetchesinformation about each storyboard of a lesson and writes a lesson. file,in its compact format, based on that information. In this manner,syntactically correct lesson files are easily produced, because humandevelopers no longer need to directly write these files.

[0099] Therefore, the lesson authoring tool stores a set of storyboardsin relational database 700, input through graphical interface 702 andoutput as a lesson file through generation tool 704. The storedstoryboards can also be printed out directly to create a stack of paperstoryboards, if desired.

[0100] Consequently, the lesson authoring tool provides a means forreducing the effort in developing new courseware. The lesson authoringtool reduces paperwork by storing storyboards in a relational database,and the graphical representation of a lesson page allows members of acourseware development team to quickly identify and modify portions of alesson in response to changes in requirements.

[0101] In the foregoing specification, the invention has been describedwith reference to specific embodiments thereof. It will be apparent,however, that various modifications and changes may be made theretowithout departing from the broader spirit and scope of the invention.The specification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense.

What is claimed is:
 1. A method of instructing a student at aworkstation, comprising the steps of: automatically downloading a lessonengine to the workstation; receiving a request from the studentspecifying a lesson file from among a plurality of available lessonfiles; in response to said request, downloading said specified lessonfile and a plurality of related multimedia content from among aplurality of available multimedia content to the workstation; andexecuting said lesson engine, at the workstation, upon said specifiedlesson file and the plurality of related multimedia content to presentthe student with interactive training.
 2. The method of claim 1,wherein: said specified lesson file includes a plurality of pages,wherein each page includes a reference to one of said plurality ofrelated multimedia content and a navigational item associated with adestination page; and the step of executing said lesson engine, at theworkstation, upon said specified lesson file and said plurality ofrelated multimedia content includes the steps of: instructing saidstudent based on a page of the plurality of pages of said specifiedlesson file; displaying a navigational control associated with thenavigational item included in the page; detecting an activation of saidnavigational control; and in response to said activation, instructingsaid student based on the destination page associated with saidnavigational item.
 3. The method of claim 2, wherein the step ofinstructing said student based on a page of the plurality of pages ofsaid specified lesson file includes the steps of: displaying a page ofthe plurality of pages of said specified lesson file; and presenting oneof the related multimedia content based on the reference included insaid page.
 4. The method of claim 3, wherein the step of displaying apage of the plurality of pages of said specified lesson file includesthe steps of: reading a page number from a file; and displaying a pageof the plurality of pages of said lesson file having the page number. 5.The method of claim 3, wherein the step of presenting one of the relatedmultimedia content based on the reference included in said page includesthe step of playing an audio file.
 6. The method of claim 3, wherein thestep of presenting one of the related multimedia content based on thereference included in said page includes the step of playing a videofile.
 7. The method of claim 3, wherein the step of presenting one ofthe related multimedia content based on the reference included in saidpage includes the step of displaying animation.
 8. The method of claim1, wherein the step of downloading said specified lesson file and aplurality of related multimedia content from among a plurality ofavailable multimedia content to the workstation includes the steps of:determining a serial number based on the file name of said specifiedlesson file; downloading said specified lesson file to the workstation;establishing which of said plurality of available multimedia content assaid plurality of related multimedia content based on said serial numberand the file names of the available multimedia content; and downloadingsaid plurality of related multimedia content to the workstation.
 9. Themethod of claim 1, wherein the step of receiving a request from thestudent specifying a lesson file of a plurality of lesson files includesthe steps of: displaying a list of lessons based on the identity of thestudent, each lesson associated with a lesson file of said plurality ofavailable lesson files; receiving input from the student indicating aselected lesson of said list of lessons; and establishing a lesson fileassociated with said selected lesson as said lesson file.
 10. The methodof claim 1, further comprising the step of collecting information aboutthe student's interaction with said lesson engine.
 11. A method ofinstructing a student at a workstation, comprising the steps of:receiving a request from the student specifying a lesson file from amonga plurality of available lesson files; in response to said request,downloading said specified lesson file and a plurality of relatedmultimedia content from among a plurality of available multimediacontent to the workstation; and executing a platform-independent lessonengine, at the workstation, upon said specified lesson file and theplurality of related multimedia content to present the student withinteractive training.
 12. The method of claim 11, wherein: saidspecified lesson file includes a plurality of pages, wherein each pageincludes a reference to one of said plurality of related multimediacontent and a navigational item associated with a destination page; andthe step of executing a platform-independent lesson engine upon saidspecified lesson file and said plurality of related multimedia contentincludes the steps of: instructing said student based on a page of theplurality of pages of said specified lesson file; displaying anavigational control associated with the navigational item included inthe page; detecting an activation of said navigational control; and inresponse to said activation, instructing said student based on thedestination page associated with said navigational item.
 13. The methodof claim 12, wherein the step of instructing said student based on apage of the plurality of pages of said specified lesson file includesthe steps of: displaying a page of the plurality of pages of saidspecified lesson file; and presenting one of the related multimediacontent based on the reference included in said page.
 14. The method ofclaim 13, wherein the step of displaying a page of the plurality ofpages of said specified lesson file includes the steps of: reading apage number from a file; and displaying a page of the plurality of pagesof said specified lesson file having the page number.
 15. The method ofclaim 13, wherein the step of presenting one of the related multimediacontent based on the reference included in said page includes the stepof playing an audio file.
 16. The method of claim 13, wherein the stepof presenting one of the related multimedia content based on thereference included in said page includes the step of playing a videofile.
 17. The method of claim 13, wherein the step of presenting one ofthe multimedia content based on the reference included in said pageincludes the step of displaying animation.
 18. The method of claim 11,wherein the step of downloading said specified lesson file and aplurality of related multimedia content from among a plurality ofavailable multimedia content to the workstation includes the steps of:determining a serial number based on the file name of said specifiedlesson file; downloading said specified lesson file to the workstation;establishing which of said plurality of available multimedia content assaid plurality of related multimedia content based on said serial numberand the file names of the available multimedia content; and downloadingsaid plurality of related multimedia content to the workstation.
 19. Themethod of claim 11, wherein the step of receiving a request from thestudent specifying a lesson file of a plurality of lesson files includesthe steps of: displaying a list of lessons based on the identity of thestudent, each lesson associated with a lesson file of said plurality ofavailable lesson files; receiving input from the student indicating aselected lesson of said list of lessons; and establishing a lesson fileassociated with said selected lesson as said specified lesson file. 20.The method of claim 11, further comprising the step of collectinginformation about the student's interaction with said lesson engine. 21.A computer readable medium having stored thereon sequences ofinstructions for instructing a student at workstation, said sequences ofinstructions including sequences of instructions for causing saidworkstation to perform the steps of: automatically downloading a lessonengine to the workstation; receiving a request from the studentspecifying a lesson file from among a plurality of available lessonfiles; in response to said request, downloading said specified lessonfile and a plurality of related multimedia content from among aplurality of available multimedia content to the workstation; andinvoking said lesson engine upon said specified lesson file and theplurality of related multimedia content to present the student withinteractive training.
 22. The computer readable medium of claim 21,wherein the step of downloading said specified lesson file and aplurality of related multimedia content from among a plurality ofavailable multimedia content to the workstation includes the steps of:determining a serial number based on the file name of said specifiedlesson file; downloading said specified lesson file to the workstation;establishing which of said plurality of available multimedia content assaid plurality of related multimedia content based on said serial numberand the file names of the available multimedia content; and downloadingsaid plurality of related multimedia content to the workstation.
 23. Thecomputer readable medium of claim 21, wherein the step of receiving arequest from the student specifying a lesson file of a plurality ofavailable lesson files includes the steps of: displaying a list oflessons based on the identity of the student, each lesson associatedwith a lesson file of said plurality of available lesson files;receiving input from the student indicating a selected lesson of saidlist of lessons; and establishing a lesson file associated with saidselected lesson as said specified lesson file.
 24. A computer readablemedium having stored thereon sequences of instructions for instructing astudent at workstation, said sequences of instructions includingsequences of instructions for causing said workstation to perform thesteps of: receiving a request from the student specifying a lesson fileof a plurality of lesson files; in response to said request, downloadingsaid specified lesson file and a plurality of related multimedia contentfrom among a plurality of available multimedia content to theworkstation; and executing a platform-independent lesson engine uponsaid specified lesson file and the plurality of related multimediacontent to present the student with interactive training.
 25. Thecomputer readable medium of claim 24, wherein the step of downloadingsaid specified lesson file and a plurality of related multimedia contentfrom among a plurality of available multimedia content to theworkstation includes the steps of: determining a serial number based onthe file name of said specified lesson file; downloading said specifiedlesson file to the workstation; establishing which of said plurality ofavailable multimedia content as said plurality of related multimediacontent based on said serial number and the file names of the availablemultimedia content; and downloading said plurality of related multimediacontent to the workstation.
 26. The computer readable medium of claim24, wherein the step of receiving a request from the student specifyinga lesson file of a plurality of available lesson files includes thesteps of: displaying a list of lessons based on the identity of thestudent, each lesson associated with a lesson file of said plurality ofavailable lesson files; receiving input from the student indicating aselected lesson of said list of lessons; and establishing a lesson fileassociated with said selected lesson as said specified lesson file. 27.An interactive training network, comprising: a storage device forstoring courseware, said courseware comprising a plurality of multimediacontent and a plurality of lesson files, wherein each lesson fileincludes a plurality of references to multimedia content; and aplurality of workstations, wherein a workstation is networked to saidstorage medium and includes: a lesson delivery system for downloading alesson file and the multimedia content referenced in the lesson filefrom said storage medium to storage in the workstation based on inputfrom a student; and a lesson engine for instructing said student basedon said specified lesson file and presenting the multimedia content atthe workstation to said student.
 28. The interactive training network ofclaim 27, wherein said lesson delivery system includes: a loginmechanism for receiving a student identifier from a student; means fordisplaying a list of lessons based on said student identifier andinformation about students stored in a database, wherein each lesson isassociated with a lesson file; means for receiving input from thestudent indicative of a selected lesson; means for determining a serialnumber embedded in the file name of the lesson file associated with theselected lesson; and means for downloading said specified lesson fileand multimedia content having file names containing said serial number.29. The interactive training network of claim 27, wherein said lessonengine includes a video player.
 30. The interactive training network ofclaim 27, wherein said lesson engine includes an audio player.
 31. Theinteractive training network of claim 27, wherein said lesson engineincludes an animation player.
 32. An apparatus for authoring courseware,comprising: a database; means for inputting a storyboard, wherein astoryboard includes a navigational item associated with a secondstoryboard and a reference to multimedia content; means for displaying agraphical representation of said storyboard; means for storing saidstoryboard into said database; means for retrieving a plurality ofstoryboards from said database; and means for generating a lesson filefrom said plurality of storyboards, wherein said lesson file comprises aplurality of pages, wherein a page includes a navigational itemassociated with one of said plurality of pages and said reference tomultimedia content.
 33. A method of creating a lesson file, comprising aplurality of pages, wherein a page includes a navigational itemassociated with one of said plurality of pages and a reference tomultimedia content, comprising the steps of: inputting a plurality ofstoryboards, wherein a storyboard includes a navigational itemassociated with a second storyboard and a reference to multimediacontent; displaying a graphical representation of said storyboard; andgenerating, from said plurality of storyboards, a lesson file comprisinga plurality of pages, wherein a page includes a navigational itemassociated with one of said plurality of pages and said reference tomultimedia content.
 34. The method of claim 33, wherein the step ofinputting a plurality of storyboards includes the step of assigning adefault value as a storyboard number when each of said plurality ofstoryboards is input.
 35. A computer readable medium having sequences ofinstructions stored thereon for creating a lesson file, comprising aplurality of pages, wherein a page includes a navigational itemassociated with one of said plurality of pages and a reference tomultimedia content, said sequences of instructions comprising sequencesof instructions for performing the steps of: inputting a plurality ofstoryboards, wherein a storyboard includes a navigational itemassociated with a second storyboard and a reference to multimediacontent; displaying a graphical representation of said storyboard; andgenerating, from said plurality of storyboards, a lesson file comprisinga plurality of pages, wherein a page includes a navigational itemassociated with one of said plurality of pages and said reference tomultimedia content.
 36. The computer readable medium of claim 35,wherein the step of inputting a plurality of storyboards includes thestep of assigning a default value as a storyboard number when each ofsaid plurality of storyboards is input.
 37. A wide area trainingnetwork, comprising: a lesson authoring tool for creating a lesson file,comprising a plurality of pages, wherein a page includes a navigationalitem associated with one of said plurality of pages and a reference tomultimedia content; a storage device networked to said lesson authoringtool for storing courseware, wherein courseware comprises a plurality ofmultimedia content and a plurality of lesson files; a plurality of localarea training networks, networked to said storage device, wherein alocal area training network comprises a file server for storingcourseware and a plurality of workstations, networked to said fileserver; and means for transmitting courseware from said storage deviceto the file server of one of said plurality of local area trainingnetworks.
 38. The wide area network of claim 37, wherein a workstationincludes: a lesson delivery system for retrieving a selected lesson fileand the multimedia content referenced in the plurality of pages of theselected lesson file from said storage medium based on input from astudent; and a lesson engine for instructing said student based on theselected lesson file and the multimedia content.